#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/ioctl.h>

#define LEDON   _IO('L', 0x00)
#define LEDOFF  _IO('L', 0x01)
#define LEDSET  _IO('L', 0x02)

int main(int argc, char *argv[])
{
    // printf("hello world\n");
    // return 0;
    char buf[128];
    int fd =  open("/dev/hello", O_RDWR);
    if(fd < 0)
    {
        perror("open");
        exit(1);
    }
    printf("open success\n");
    printf("fd = %d\n", fd);
    // int ret = write(fd, "hello world", 11);
    // if(ret < 0)
    // {
    //     perror("write");
    //     exit(1);
    // }
    // printf("write success\n");
    // ret = read(fd, buf, 128);
    // if(ret < 0)
    // {
    //     perror("read");
    //     exit(1);
    // }
    // printf("read success\n");
    // printf("buf = %s\n", buf);

    int ret = ioctl(fd, LEDON);
    if(ret < 0)
    {
        perror("ioctl");
        exit(1);
    }
    printf("ioctl  LEDON success\n");
    ret = ioctl(fd, LEDOFF);
    if(ret < 0)
    {
        perror("ioctl");
        exit(1);
    }
    printf("ioctl LEDOFF success\n");
    ret = ioctl(fd, LEDSET, "set1");
    if(ret < 0)
    {
        perror("ioctl");
        exit(1);
    }
    printf("ioctl LEDSET success\n");

    close(fd);
    return 0;
}